package cn.lyjuan.payment.third.http.api.vo.req;

import cn.lyjuan.payment.third.base.common.enums.impl.ChlEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;

/**
 * @author arvin
 * desc payment-third cn.lyjuan.payment.third.http.api.vo.req
 * 2021/3/16 15:10
 */
@ApiModel("签名数据")
public class SignReqVo {

    @ApiModelProperty(value = "应用ID", required = true)
    @NotNull
    private Integer appId;

    @ApiModelProperty(value = "支付渠道", required = true)
    @NotNull
    private ChlEnum chlType;

    @ApiModelProperty(value = "MD5 32位签名")
    @NotNull
    private String sign;

    @ApiModelProperty(value = "独立参数", notes = "第三方平台独立参数，详见对应的第三方文档说明")
    private SignParams params;

    @ApiModel("第三方签名参数")
    public static class SignParams {

        @ApiModelProperty(value = "apiname")
        private String apiName;

        @ApiModelProperty(value = "method")
        private String method;

        @ApiModelProperty(value = "app_name")
        private String appName;

        @ApiModelProperty(value = "biz_type")
        private String bizType;

        @ApiModelProperty(value = "product_id")
        private String productId;

        @ApiModelProperty(value = "scope")
        private String scope;

        @ApiModelProperty(value = "target_id")
        private String targetId;

        @ApiModelProperty(value = "auth_type")
        private String authType;

        @ApiModelProperty(value = "sign_type")
        private String signType;

        public String getApiName() {
            return apiName;
        }

        public void setApiName(String apiName) {
            this.apiName = apiName;
        }

        public String getMethod() {
            return method;
        }

        public void setMethod(String method) {
            this.method = method;
        }

        public String getAppName() {
            return appName;
        }

        public void setAppName(String appName) {
            this.appName = appName;
        }

        public String getBizType() {
            return bizType;
        }

        public void setBizType(String bizType) {
            this.bizType = bizType;
        }

        public String getProductId() {
            return productId;
        }

        public void setProductId(String productId) {
            this.productId = productId;
        }

        public String getScope() {
            return scope;
        }

        public void setScope(String scope) {
            this.scope = scope;
        }

        public String getTargetId() {
            return targetId;
        }

        public void setTargetId(String targetId) {
            this.targetId = targetId;
        }

        public String getAuthType() {
            return authType;
        }

        public void setAuthType(String authType) {
            this.authType = authType;
        }

        public String getSignType() {
            return signType;
        }

        public void setSignType(String signType) {
            this.signType = signType;
        }
    }

    public Integer getAppId() {
        return appId;
    }

    public void setAppId(Integer appId) {
        this.appId = appId;
    }

    public ChlEnum getChlType() {
        return chlType;
    }

    public void setChlType(ChlEnum chlType) {
        this.chlType = chlType;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public SignParams getParams() {
        return params;
    }

    public void setParams(SignParams params) {
        this.params = params;
    }
}
